/**********************************************************************************************/
// JKTrigger_Async.cpp
//
// Asyncronic JK Trigger
// Copyright Diamant Group 2007
/**********************************************************************************************/
#include "JKTrigger_Async.h"


/**********************************************************************************************/
#ifdef _MANAGED
#pragma managed(push, off)
#endif


/**********************************************************************************************/
/**********************************************************************************************/
dgt_JKTrigger_ASync::dgt_JKTrigger_ASync()
{
	// Initalialize element

	// Logical table
	m_table.Add( TRVALUE_SAVE );	//00
	m_table.Add( TRVALUE_TRUE );	//01
	m_table.Add( TRVALUE_FALSE );	//10
	m_table.Add( TRVALUE_INVERT );	//11

	// Syncro signal
	m_Sync = false;

	// Name
	m_Name = _( "Asyncronic JK Trigger" );

	// Number of inputs
	m_ICount = 2;

	// Number of elements in block
	m_BCount = 1;
}

/**********************************************************************************************/
dgt_JKTrigger_ASync::~dgt_JKTrigger_ASync()
{

}

/**********************************************************************************************/
wxArrayShort dgt_JKTrigger_ASync::get_InpSygnals(bool begValue, bool endValue)
{
	wxArrayShort result;

	// 0 >>> 0 
	if( !begValue && !endValue )
	{
		result.Add( -1 );
		result.Add( 0 );
	}
	// 0 >>> 1
	if( !begValue && endValue )
	{
		result.Add( -1 );
		result.Add( 1 );
	}
	// 1 >>> 0
	if( begValue && !endValue )
	{
		result.Add( 1 );
		result.Add( -1 );
	}
	// 1 >>> 1
	if( begValue && endValue )
	{
		result.Add( 0 );
		result.Add( -1 );
	}

	return result;
}